/**
 * Token相关操作工具函数
 */

// 获取Token
export function getToken() {
  return localStorage.getItem("token");
}

// 设置Token
export function setToken(token) {
  localStorage.setItem("token", token);
}

// 移除Token
export function removeToken() {
  localStorage.removeItem("token");
}

// 移除RefreshToken
export function removeRefreshToken() {
  // 移除Cookie中的refreshToken
  document.cookie = "refreshToken=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
}

// 完全退出登录，清除所有相关数据
export function logout() {
  // 清除令牌
  removeToken();
  removeRefreshToken();
  
  // 清除用户信息
  localStorage.removeItem("userInfo");
  
  // 清除权限信息
  localStorage.removeItem("permissions");
  
  // 清除其他可能的用户相关数据
  localStorage.removeItem("erp-layout");
  
  // 清除所有session storage
  sessionStorage.clear();
}

// 检查Token是否有效
export function isValidToken(token) {
  if (!token) return false;

  try {
    // 这里简单判断token格式是否符合JWT格式
    // JWT格式：header.payload.signature
    const parts = token.split(".");
    if (parts.length !== 3) return false;

    // 检查第二段能否被解析（payload部分）
    const payload = JSON.parse(atob(parts[1]));

    // 检查token是否过期
    const exp = payload.exp * 1000; // 转换为毫秒
    return Date.now() < exp;
  } catch (e) {
    console.error("Token格式验证失败:", e);
    return false;
  }
}
